Type IntMap

	Field smap:IntNode[]
	
	Method New()
	
		
	
	End Method

	Method Set(k:Int,v:Object)
		Local msize:Int = smap.length

		For Local i:Int = 0 To msize-1
		
			If smap[i].key = k Then 
				smap[i].value = v
				Return
			EndIf
		
		Next
	
		
		smap = smap[..msize+1]
		
		smap[msize] = IntNode.FromData(k,v)
	
	End Method
	
	Method Add(k:Int,v:Object)
		Local msize:Int = smap.length

		For Local i:Int = 0 To msize-1
		
			If smap[i].key = k Then 
				smap[i].value = v
				Return
			EndIf
		
		Next
	
		
		smap = smap[..msize+1]
		
		smap[msize] = IntNode.FromData(k,v)
	
	End Method
	
	Method Contains:Byte(k:Int)
		If smap.length <= 0 Then Return False
		
		For Local i:Int = 0 To smap.length-1
		
			If smap[i].key = k Then Return True
		
		Next
		Return False
		
	End Method
	
	Method Get:Object(k:Int)
		If smap.length <= 0 Then Return ""
		
		For Local i:Int = 0 To smap.length-1
		
			If smap[i].key = k Then Return smap[i].value
		
		Next	
	End Method
	

End Type

Type IntNode

	Field key:Int
	Field value:Object
	
	Function FromData:IntNode(k:Int=0,v:Object=Null)
		Local i:IntNode = New IntNode
		i.key = k
		i.value = v
		Return i
	End Function

End Type

